home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
-
-
-
- INDRA Note 753
- IEN 99
- May 3rd 1979
-
-
-
-
-
-
-
-
-
-
- NI FTP: Summary and Assessment
-
- P. L. Higginson
- C. J. Bennett
-
-
-
-
-
-
-
-
-
-
- ABSTRACT: This note is a brief summary of
- the NI FTP, its design aims, and the ways
- in which those aims are achieved. A
- comparison of the NI FTP and the DIN FTP
- proposed for AUTODIN II is contained in
- IEN 100.
-
- 2
-
-
-
- 1. The NI FTP Protocol
-
- This section is a brief summary of the important features of the NI
- FTP protocol.
-
- The NI FTP was written by a committee of people from eight
- different organisations in the UK who between them used a wide variety
- of computer systems and hardware. Computers used by the group were
- manufactured, among others, by DEC, IBM, ICL, GEC, PRIME and CTL.
- Drafts were widely circulated and discussed outside the design group.
- While the initial aim was to produce a protocol for transferring files
- across EPSS, "network independence" became an overriding aim. This was
- because it was realised that EPSS would shortly be replaced by a
- different, X25-based network, and because most of the eight
- organisations had multiple systems or their own local networks, and the
- ability to use the FTP in all these areas was desired. There are about
- 15 implementations in progress, of which 3 have so far exchanged files.
- UCL has a TOPS20/TENEX implementation which has transferred files across
- the ARPANET, and tests have begun on interworking with implementations
- in EPSS.
-
- The NI FTP is a two-party file transfer protocol. The transfer
- occurs in two phases. In the first, the transfer is defined and the
- attributes of the data to be transferred are negotiated. In the second,
- the data is actually transferred. Three levels of protocol are
- recognised: level 0, which covers the negotiation of file transfer
- parameters; level 1, which handles error and flow control during the
- transfer, along with any data or time dependent changes in the file; and
- level 2, which is the actual transfer of data.
-
- The negotiation phase is simply structured to be an exchange of
- file attributes between the two sides. These attributes define a common
- definition of the file and the transfer within a "conceptual filestore"
- supported by the two sides. During this phase, agreement is reached on
- such things as character code, file size, file name and access rights,
- all of which are regarded as attributes of the file within the
- conceptual file store. It is up to the two ends to map these attributes
- into locally acceptable forms for their actual filestores; if this
- cannot be done, the transfer may be rejected.
-
- The currently defined attributes cover a basic set of properties of
- sequential files. This set can be easily extended, and facilities are
- provided to enable implementations to grow in an upwards compatible
- manner. Every attribute has a default value, which allows an
- implementor to construct a transfer facility as simple or as complex as
- desired, in the knowledge that his facility will be able to interact
- easily with more complex ones. This is possible because quoting an
- unknown attribute or unacceptable value for an attribute need not of
- itself cause a protocol error. During the negotiation phase, the more
- complex implementation will reduce its attribute set to one acceptable
- to the simpler one.
-
- 3
-
-
-
- The data transfer phase can treat the data totally transparently,
- but does provide a user record structure for text files if desired. It
- allows for data compression as an option, which can significantly reduce
- the amount of data actually transferred. Even if this is not used, the
- protocol overhead can be as low as 1 byte in 64. For text files, the
- existence of different degrees of formatting sophistication is
- recognised by allowing a set of common format effectors to be agreed in
- the negotiation phase. The data can be in a variety of codes, as agreed
- during the negotiation phase, and the particular code in use can be
- changed during the transfer phase, thus allowing the protocol to handle
- special files such as job output files, graphics files with embedded
- text, or symbolic files produced by a compiler for debugging purposes.
- Binary files can use byte sizes of any arbitrary size as agreed in
- advance.
-
- Error control is provided by the use of data checkpoints. These
- are inserted by the sender at suitable points, and may be matched to the
- characteristics of the file source or destination storage devices. The
- acknowledgement of a data mark implies that the data has been securely
- stored by the receiver. The use of a data window of unacknowledged data
- marks enables the sender to detect problems at the receiving end which
- will cause it to suspend the flow of data. On recovery (or in any
- appropriate circumstance), the receiver can ask the sender to resume the
- transfer starting from any mark after the last mark acknowledged. This
- facility also protects the transfer against loss of data within the
- network, and can even be used to resume an interrupted transfer in a
- separate session.
-
- Flow control is provided by allowing the receiver to request the
- sender to suspend the flow of data, and to tell it when to resume. This
- is primarily intended to cover device interruptions (eg mounting a
- magnetic tape). The use of these options is again subject to prior
- agreement during the initial negotiation phase, as with all the other
- attributes.
-
- The mechanics of the data transfer is left to the transport
- mechanism. The protocol is defined so as to make minimal assumptions
- about the transport service. These are: the transport service will
- provide a synchronised sequential bytestream between the two sides with
- an acceptably low rate of error, and that if an unrecoverable error does
- occur, there exists some way for the transport service to notify the
- application process. Recovery would then be handled by the error
- control mechanism described above.
-
-
-
-
- 4
-
-
-
- 2. Assessment of the NI FTP.
-
- The design of the NI FTP was governed by four basic objectives:
-
- (i) The protocol should be independent of the communication medium.
-
- (ii) It should be flexible enough to satisfy a diverse variety of
- applications.
-
- (iii) It should be able to interface easily to a wide range of
- operating systems.
-
- (iv) It should allow "escape routes" such that special features of
- a particular operating system can be exploited where necessary.
-
- The following features of the protocol were designed to meet these
- objectives:
-
- (i) The minimal requirements necessary from a transport service
- were identified and adhered to, along with the recognition that
- unrecoverable errors (at transport level) may occur.
-
- (ii) The definition of the file is in terms of a conceptual file
- store. No restrictions were placed on the mapping of this file
- store to the local file store, either in the attributes
- specification or in the definition of the negotiation process. The
- inclusion of option sets and relational operators in the attribute
- specification allows extensions to be easily incorporated into
- existing implementations and into the protocol itself. A number of
- parameters provide the required "escape routes" for areas where
- operating system dependent peculiarities are anticipated.
-
- (iii) Complete transparency for naming files and for data transfer
- is possible.
-
- (iv) The "records" of data transfer used within the protocol enable
- mixing of control and data within a single connection. They need
- have no relation to the record structure (if any) used within the
- file, unless the user so desires. The only restriction is that the
- communication medium should deliver eight bit bytes of data in
- sequence.
-
- (v) The formats of control commands and attributes are standardised
- in a machine-oriented form. The action of the protocol is defined
- as a single file transfer transaction. Hence the dominant need for
- flexible command formats occurs in the negotiation phase, and the
- level 0 commands are very loosely structured to allow indefinite
- extension. Only a very small number of commands must be exchanged
- during the data transfer; for this reason, a more rigid structure
- was adopted for level 1 commands to ease processing overhead.
-
-